﻿using System;
using System.Collections.Generic;
using System.Linq;

namespace JNPF.Utils
{
    /// <summary>
    /// 排序
    /// 版 本：V3.0.0
    /// 版 权：引迈信息技术有限公司（https://www.jnpfsoft.com）
    /// 作 者：JNPF开发平台组
    /// </summary>
    public static partial class ExtLinq
    {
        public static IEnumerable<T> SortBy<T>(this IEnumerable<T> source, string propertyName, string sord)
        {
            var asc = true;
            if (sord.ToUpper() == "DESC")
                asc = false;
            return SortBy(source, propertyName, asc);
        }
        public static IEnumerable<T> SortBy<T>(this IEnumerable<T> source, string propertyName, bool sord)
        {
            Func<T, object> func = s => s.GetType().GetProperty(propertyName).GetValue(s, null);
            if (sord)
                return source.OrderBy(func);
            else
                return source.OrderByDescending(func);
        }
    }
}
